package com.colodoo.code.service;

import com.colodoo.code.common.QueryRequest;
import com.colodoo.code.entity.ModuleInf;
import com.colodoo.code.mapper.ModuleInfRepository;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * 模块表-服务类
 *
 * @author zhisan
 */
@Service
public class ModuleInfService {

	@Resource
	ModuleInfRepository moduleInfRepository;

	/**
	 * 保存
	 *
	 * @param moduleInf
	 */
	public void saveModuleInf(ModuleInf moduleInf) {
		this.moduleInfRepository.save(moduleInf);
	}

	/**
	 * 删除
	 *
	 * @param moduleInf
	 */
	public void deleteModuleInf(ModuleInf moduleInf) {
		this.moduleInfRepository.delete(moduleInf);
	}

	/**
	 * 根据ID删除
	 *
	 * @param tableInfId
	 */
	public void deleteModuleInfById(Integer tableInfId) {
		this.moduleInfRepository.deleteById(tableInfId);
	}

	/**
	 * 批量删除
	 *
	 * @param moduleInfs
	 */
	public void deleteModuleInfBatch(List<ModuleInf> moduleInfs) {
		this.moduleInfRepository.deleteInBatch(moduleInfs);
	}

	/**
	 * 更新
	 *
	 * @param moduleInf
	 */
	public void updateModuleInf(ModuleInf moduleInf) {
		this.moduleInfRepository.save(moduleInf);
	}


	/**
	 * 根据ID获取实体
	 *
	 * @param moduleInfId
	 * @return
	 */
	public ModuleInf getModuleInfById(Integer moduleInfId) {
		return this.moduleInfRepository.findById(moduleInfId).get();
	}

	/**
	 * 获取列表-分页
	 *
	 * @param moduleInf
	 * @param request
	 * @return
	 */
	public Page<ModuleInf> getModuleInfsByPage(ModuleInf moduleInf, QueryRequest request) {
		return this.moduleInfRepository.findAll(Example.of(moduleInf), PageRequest.of(request.getPage(), request.getRows()));
	}

	/**
	 * 获取列表
	 *
	 * @param moduleInf
	 * @return
	 */
	public List<ModuleInf> getModuleInfs(ModuleInf moduleInf) {
		return this.moduleInfRepository.findAll(Example.of(moduleInf));
	}

}
